<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>信息输入验证</title>
    <link href="CssForDome01.css" type="text/css" rel="stylesheet">
</head>
<body>

<?php
// 定义变量并默认设置为空值
$name = "";
$email = "";
$gender = "";
$comment = "";
$website = "";
$nameErr = "";
$emailErr = "";
$genderErr = "";
$websiteErr = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    if (empty($_POST["name"]))
    {
        $nameErr = "名字是必需的";
    }
    else
    {
        $name = test_input($_POST["name"]);
        // 检测名字是否只包含字母跟空格
        if (!preg_match("/^[a-zA-Z ]*$/",$name))
        {
            $nameErr = "只允许字母和空格";
        }
    }

    if (empty($_POST["email"]))
    {
        $emailErr = "邮箱是必需的";
    }
    else
    {
        $email = test_input($_POST["email"]);
        // 检测邮箱是否合法
        if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
        {
            $emailErr = "非法邮箱格式";
        }
    }

    if (empty($_POST["website"]))
    {
        $website = "";
    }
    else
    {
        $website = test_input($_POST["website"]);
        // 检测 URL 地址是否合法
        if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
        {
            $websiteErr = "非法的 URL 的地址";
        }
    }

    if (empty($_POST["comment"]))
    {
        $comment = "";
    }
    else
    {
        $comment = test_input($_POST["comment"]);
    }

    if (empty($_POST["gender"]))
    {
        $genderErr = "性别是必需的";
    }
    else
    {
        $gender = test_input($_POST["gender"]);
    }
}

function test_input($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>



<h2>
    <center>
        PHP 表单验证实例
    </center>
</h2>

<p>
    <span class="error">
        * 必需字段。
    </span>
</p>

<form method="post" action="show.php">
    名字:
    <input type="text" name="name" value="<?php echo $name;?>">
    <span class="error">
        *
        <?php echo $nameErr;?>
    </span>

    <br>
    <br>

    E-mail:
    <input type="text" name="email" value="<?php echo $email;?>">
    <span class="error">
        *
        <?php echo $emailErr;?>
    </span>

    <br>
    <br>

    网址:
    <input type="text" name="website" value="<?php echo $website;?>">
    <span class="error">
        <?php echo $websiteErr;?>
    </span>

    <br>
    <br>

    备注:
    <textarea name="comment" rows="5" cols="40">
        <?php echo $comment;?>
    </textarea>

    <br>
    <br>

    性别:
    <input type="radio" name="gender"<?php if (isset($gender) && $gender=="女") echo "checked";?> value="female">女
    <input type="radio" name="gender" <?php if (isset($gender) && $gender=="男") echo "checked";?>  value="male">男

    <span class="error">
        *
        <?php echo $genderErr;?>
    </span>

    <br>
    <br>

    <input type="submit" name="submit" value="Submit">

</form>

</body>
</html>